#ifndef NctiWindowMouseEvent_H
#define NctiWindowMouseEvent_H
#include "NctiWindowEvent.h"
#include "ncti_event.h"
namespace NCTI
{
	/**
   * @brief window mouse event
   * @see NctiWindowEvent
   */
	class DECL_NCTI_WINDOW NctiWindowMouseEvent : public NctiWindowEvent
	{
	public:
		NctiWindowMouseEvent(NctiWindowObject* i_pWindowObject);
		virtual ~NctiWindowMouseEvent();
	public:
		/**
	   * @brief set position
	   * @param[in] i_x
	   * @param[in] i_y
	   */
		void SetPos(Ncti_Double i_x, Ncti_Double i_y);
		/**
	   * @brief set mouse buttons
	   */
		void SetMouseButtons(MouseButtons i_buttons);
		/**
	   * @brief get position x
	   * @return Ncti_Double
	   */
		Ncti_Double PosX() { return m_x; }
		/**
	   * @brief get position y
	   * @return Ncti_Double
	   */
		Ncti_Double PosY() { return m_y; }
		/**
	   * @brief  mouse buttons
	   * @return const MouseButtons&
	   */
		const MouseButtons& button() { return m_CurrentButton; }
	private:
		Ncti_Double m_x;
		Ncti_Double m_y;
		MouseButtons m_CurrentButton;
	};
}
#endif
